{{tag>matériel webcam flux détection domotique sécurité}}

====== Motion ======

**Motion** est un logiciel de détection video et qui permet de diffuser un flux video via http. Il est une solution simple pour diffuser le flux de sa webcam en ligne, ou de détecter des mouvements dans le champ d'une caméra par exemple.

Pré-requis : Une [[:Webcam|webcam]] qui fonctionne.

Pour vérifier l'installation de votre webcam saisir dans un terminal  : <code> gstreamer-properties</code> dans Video/Test, le test devrait afficher l'image de votre cam.


===== Installation =====

Après avoir activé les [[:depots#universe_et_multiverse|dépôts Universe]], il vous suffira d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt://motion|motion]]**


Suite a l'installation par défaut, les fichiers de configuration se trouvent sous ///etc/motion///


Note : sous Intrepid, les packages par défaut ne contiennent pas les codecs les plus classiques comme "mpeg4", pour cela il faut installer spécifiquement

  sudo apt-get install libavcodec-unstripped-52 libavdevice-unstripped-52 libavformat-unstripped-52 libavutil-unstripped-49 libpostproc-unstripped-51 libswscale-unstripped-0 ffmpeg



==== Lancement automatique ====


Par défaut, le daemon **motion** n'est pas activé/démarré.

Si l'on veut l'activer, il faut mettre a 'Yes' la variable //start_motion_daemon// dans le fichier ///etc/default/motion//


En mode utilisateur (hors daemon), le mieux est de copier le fichier ///etc/motion/motion.conf// dans son propre home dir.
  sudo cp /etc/motion/motion.conf ~/
Puis, mettre les bon droits :
  sudo chown $USER ~/motion.conf







==== Configuration de base pour une webcam ====

Maintenant nous allons [[:tutoriel:comment_editer_un_fichier|éditer le fichier]] ''motion.conf''\\

Les variables sont nombreuses et relativement bien expliquées en lignes de commentaires.

Les principaux paramètres a changer sont : **target_dir**,  **width & height** (résolution). Les remplacer par les valeurs de votre choix.

Voici un exemple de motion.conf :
  daemon off
  process_id_file /var/run/motion/motion.pid
  setup_mode off
  videodevice /dev/video0
  v4l2_palette 8
  input 8
  norm 0
  frequency 0
  rotate 0
  width 640
  height 480
  framerate 2
  minimum_frame_time 0
  netcam_tolerant_check off
  auto_brightness off
  brightness 0
  contrast 0
  saturation 0
  hue 0
  roundrobin_frames 1
  roundrobin_skip 1
  switchfilter off
  threshold 1500
  threshold_tune off
  noise_level 32
  noise_tune on
  despeckle EedDl
  smart_mask_speed 0
  lightswitch 0
  minimum_motion_frames 1
  pre_capture 0
  post_capture 0
  gap 60
  max_mpeg_time 0
  output_all off
  output_normal on
  output_motion off
  quality 75
  ppm off
  ffmpeg_cap_new on
  ffmpeg_cap_motion off
  ffmpeg_timelapse 0
  ffmpeg_timelapse_mode daily
  ffmpeg_bps 500000
  ffmpeg_variable_bitrate 0
  ffmpeg_video_codec swf
  ffmpeg_deinterlace off
  snapshot_interval 0
  locate off
  text_right %Y-%m-%d\n%T-%q
  text_changes off
  text_event %Y%m%d%H%M%S
  text_double off
  target_dir /tmp/motion
  snapshot_filename %v-%Y%m%d%H%M%S-snapshot
  jpeg_filename %v-%Y%m%d%H%M%S-%q
  movie_filename %v-%Y%m%d%H%M%S
  timelapse_filename %Y%m%d-timelapse
  webcam_port 8081
  webcam_quality 50
  webcam_motion off
  webcam_maxrate 1
  webcam_localhost off
  webcam_limit 0
  control_port 8080
  control_localhost on
  control_html_output on
  track_type 0
  track_auto off
  track_motorx 0
  track_motory 0
  track_maxx 0
  track_maxy 0
  track_iomojo_id 0
  track_step_angle_x 10
  track_step_angle_y 10
  track_move_wait 10
  track_speed 255
  track_stepsize 40
  quiet on
  sql_log_image on
  sql_log_snapshot on
  sql_log_mpeg off
  sql_log_timelapse off
  sql_query insert into security(camera, filename, frame, file_type, time_stamp, event_time_stamp) values('%t', '%f', %q', '%n', '%Y-%m-%d %T', '%C')


<note tip> Pour connaitre les résolutions supportées, ou tout simplement pour tester sa webcam,  **[[apt://cheese|cheese]]** est un bon candidat.</note>


Ici, les mouvements détectés par la webcam seront sauvegardés au format swf, résolution 640x480 dans le répertoire /tmp/motion.

Le flux video de la webcam sera accessible par tous (**webcam_localhost off**) sur le port 8081.


Pour démarrer le processus : 

  motion -c motion.conf


==== Configuration pour plusieurs webcams ====

Lorsque plusieurs webcams sont utilisées, il faut dédier un fichier //threadN.conf// par webcam.

A la fin du fichier //motion.conf//, rajouter une ligne par webcam.
  thread /chemin_jusque_fichier_thread.conf


Chaque fichier //thread.conf// reprend des paramètres du //motion.conf// qu'il va forcer pour chacune des webcams.
Bien renseigner le paramètre **videodevice** qui doit etre different pour chaque fichier //thread.conf//.

Par défaut, les scripts de post-capture et de pré-capture ///usr/local/motion-extras/// ne sont pas fournis lors de l'installation du paquet **motion**.

Exemple de fichier thread.conf

  videodevice /dev/video1
  input 8
  text_left CAMERA COULOIR 1
  target_dir /tmp/motion
  webcam_port 6881



===== Liens =====

  * [[http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome|Site officiel de Motion]]


  * qmotion :http://slist.lilotux.net/linux/qmotion/index_fr.html qui fait entre autre l'envoie ftp.
  * Kmotion avec interface web http://kmotion.eu/mediawiki/index.php/Main_Page

  